// ==UserScript==
// @name         UIAdmin脚本注入器
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  在uiadmin.net/uview-plus页面中注入本地脚本并修改指定元素样式
// @author       NuoSiNi
// @match        *://uiadmin.net/uview-plus*
// @match        *://*.uiadmin.net/uview-plus*
// @run-at       document-start
// @require      https://scriptcat.org/lib/513/2.0.0/ElementGetter.js
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 初始化脚本
    function initScript() {
        injectScript();
        modifyElements();
    }

    // 注入脚本函数
    function injectScript() {
        // 检查脚本是否已经存在，避免重复注入
        if (document.querySelector('script[src="http://localhost:8100/target.js"]')) {
            console.log('目标脚本已存在，跳过注入');
            return;
        }

        // 创建script标签
        const script = document.createElement('script');
        script.src = 'http://localhost:8100/target.js';
        script.type = 'text/javascript';
        script.async = true;

        // 添加加载成功和失败的处理
        script.onload = function() {
            console.log('目标脚本加载成功: http://localhost:8100/target.js');
        };

        script.onerror = function() {
            console.error('目标脚本加载失败: http://localhost:8100/target.js');
        };

        // 将脚本添加到页面头部
        document.head.appendChild(script);
        console.log('正在注入目标脚本: http://localhost:8100/target.js');
    }

    // 修改指定元素样式
    function modifyElements() {
        // 使用ElementGetter监听id="vip-box"元素
        // elmGetter.get('#pleasePrNotCrack').then(element => {
        //     if (element) {
        //         element.style.display = 'none';
        //         console.log('已隐藏vip-box元素');
        //     }
        // }).catch(error => {
        //     console.log('vip-box元素未找到或已被处理');
        // });

        // // 使用ElementGetter监听class="v-modal"元素
        // elmGetter.get('.v-modal').then(element => {
        //     console.log(element,'v-modal');
        //     if (element) {
        //         element.style.zIndex = '0';
        //         element.style.background = 'transparent';
        //     }
        // }).catch(error => {
        //     console.log('v-modal元素未找到或已被处理');
        // });

        // 持续监听动态添加的元素
        // setInterval(() => {
        //     // 检查并处理新出现的vip-box元素
        //     const vipBoxes = document.querySelectorAll('#pleasePrNotCrack');
        //     vipBoxes.forEach(box => {
        //         if (box.style.display !== 'none') {
        //             box.style.display = 'none';
        //             console.log('动态隐藏新出现的vip-box元素');
        //             }
        //     });

        //     // 检查并处理新出现的v-modal元素
        //     const vModals = document.querySelectorAll('.v-modal');
        //     vModals.forEach(modal => {
        //             if (modal.style.zIndex !== '0' || modal.style.background !== 'transparent') {
        //                 modal.style.zIndex = '0';
        //                 modal.style.background = 'transparent';
        //                 console.log('动态修改新出现的v-modal元素样式');
        //             }
        //     });
        // }, 1000); // 每秒检查一次

        // 使用CSS注入方式隐藏元素，避免直接修改DOM属性
        const antiDetectionCSS = `
            #pleasePrNotCrack {
                opacity: 0 !important;
                pointer-events: none !important;
                visibility: hidden !important;
                position: absolute !important;
                left: -9999px !important;
                top: -9999px !important;
                width: 1px !important;
                height: 1px !important;
                overflow: hidden !important;
            }
            .v-modal {
                opacity: 0.01 !important;
                pointer-events: none !important;
                background: transparent !important;
                z-index: -9999 !important;
                position: fixed !important;
                left: -9999px !important;
                top: -9999px !important;
                width: 1px !important;
                height: 1px !important;
                overflow: hidden !important;
            }
        `;

        // 创建样式标签并注入
        const styleElement = document.createElement('style');
        styleElement.textContent = antiDetectionCSS;
        styleElement.setAttribute('data-tampermonkey', 'true');
        document.head.appendChild(styleElement);

        // 使用MutationObserver监听DOM变化，更隐蔽地处理新元素
        const observer = new MutationObserver((mutations) => {
            mutations.forEach((mutation) => {
                if (mutation.type === 'childList') {
                    mutation.addedNodes.forEach((node) => {
                        if (node.nodeType === Node.ELEMENT_NODE) {
                            // 处理新添加的vip-box元素
                            if (node.id === 'pleasePrNotCrack' || node.querySelector('#pleasePrNotCrack')) {
                                const vipBox = node.id === 'pleasePrNotCrack' ? node : node.querySelector('#pleasePrNotCrack');
                                if (vipBox) {
                                    // 使用CSS类而不是直接修改style属性
                                    vipBox.classList.add('tampermonkey-hidden');
                                }
                            }

                            // 处理新添加的v-modal元素
                            if (node.classList && node.classList.contains('v-modal') || node.querySelector('.v-modal')) {
                                const vModal = node.classList.contains('v-modal') ? node : node.querySelector('.v-modal');
                                if (vModal) {
                                    // 使用CSS类而不是直接修改style属性
                                    vModal.classList.add('tampermonkey-modal-hidden');
                                }
                            }
                        }
                    });
                }
            });
        });

        // 开始观察
        observer.observe(document.body, {
            childList: true,
            subtree: true
        });

        // 添加额外的CSS类来处理动态元素
        const dynamicCSS = `
            .tampermonkey-hidden {
                opacity: 0 !important;
                pointer-events: none !important;
                visibility: hidden !important;
                position: absolute !important;
                left: -9999px !important;
                top: -9999px !important;
                width: 1px !important;
                height: 1px !important;
                overflow: hidden !important;
            }
            .tampermonkey-modal-hidden {
                opacity: 0.01 !important;
                pointer-events: none !important;
                background: transparent !important;
                z-index: -9999 !important;
                position: fixed !important;
                left: -9999px !important;
                top: -9999px !important;
                width: 1px !important;
                height: 1px !important;
                overflow: hidden !important;
            }
        `;

        const dynamicStyleElement = document.createElement('style');
        dynamicStyleElement.textContent = dynamicCSS;
        dynamicStyleElement.setAttribute('data-tampermonkey', 'true');
        document.head.appendChild(dynamicStyleElement);

        console.log('已启用反检测的元素隐藏机制');
    }

    // 根据页面加载状态选择执行时机
    if (document.readyState === 'loading') {
        // 页面还在加载中，等待DOMContentLoaded事件
        document.addEventListener('DOMContentLoaded', initScript);
    } else if (document.readyState === 'interactive') {
        // DOM已加载完成，立即执行
        initScript();
    } else {
        // 页面已完全加载，立即执行
        initScript();
    }

})();